﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;

namespace LowLevelGraphics.Types.Interval
{
    /// <summary>
    /// 
    /// </summary>
    partial class IntIntervalPropertyDescriptor : PropertyDescriptor
    {
        PropertyDescriptor m_PropertyDescriptor = null;
        /// <summary>
        /// Initializes a new instance of the <see cref="IntIntervalPropertyDescriptor"/> class.
        /// </summary>
        /// <param name="_sInterval">The _s interval.</param>
        /// <param name="_aAttribute">The _a attribute.</param>
        public IntIntervalPropertyDescriptor(string _sInterval, Attribute[] _aAttribute)
            : base(_sInterval, _aAttribute)
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="IntIntervalPropertyDescriptor"/> class.
        /// </summary>
        /// <param name="_memberDescriptor">The _member descriptor.</param>
        public IntIntervalPropertyDescriptor(MemberDescriptor _memberDescriptor)
            : base(_memberDescriptor)
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="IntIntervalPropertyDescriptor"/> class.
        /// </summary>
        /// <param name="_memberDescriptor">The _member descriptor.</param>
        /// <param name="_aAttribute">The _a attribute.</param>
        public IntIntervalPropertyDescriptor(MemberDescriptor _memberDescriptor, Attribute[] _aAttribute)
            : base(_memberDescriptor, _aAttribute)
        {
        }

        /// <summary>
        /// When overridden in a derived class, returns whether resetting an object changes its value.
        /// </summary>
        /// <param name="component">The component to test for reset capability.</param>
        /// <returns>
        /// true if resetting the component changes its value; otherwise, false.
        /// </returns>
        public override bool CanResetValue(object component)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// When overridden in a derived class, gets the type of the component this property is bound to.
        /// </summary>
        /// <value></value>
        /// <returns>A <see cref="T:System.Type"/> that represents the type of component this property is bound to. When the <see cref="M:System.ComponentModel.PropertyDescriptor.GetValue(System.Object)"/> or <see cref="M:System.ComponentModel.PropertyDescriptor.SetValue(System.Object,System.Object)"/> methods are invoked, the object specified might be an instance of this type.</returns>
        public override Type ComponentType
        {
            get { throw new NotImplementedException(); }
        }

        /// <summary>
        /// When overridden in a derived class, gets the current value of the property on a component.
        /// </summary>
        /// <param name="component">The component with the property for which to retrieve the value.</param>
        /// <returns>
        /// The value of a property for a given component.
        /// </returns>
        public override object GetValue(object component)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// When overridden in a derived class, gets a value indicating whether this property is read-only.
        /// </summary>
        /// <value></value>
        /// <returns>true if the property is read-only; otherwise, false.</returns>
        public override bool IsReadOnly
        {
            get { return false; }
        }

        /// <summary>
        /// When overridden in a derived class, gets the type of the property.
        /// </summary>
        /// <value></value>
        /// <returns>A <see cref="T:System.Type"/> that represents the type of the property.</returns>
        public override Type PropertyType
        {
            get { throw new NotImplementedException(); }
        }

        /// <summary>
        /// When overridden in a derived class, resets the value for this property of the component to the default value.
        /// </summary>
        /// <param name="component">The component with the property value that is to be reset to the default value.</param>
        public override void ResetValue(object component)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// When overridden in a derived class, sets the value of the component to a different value.
        /// </summary>
        /// <param name="component">The component with the property value that is to be set.</param>
        /// <param name="value">The new value.</param>
        public override void SetValue(object component, object value)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
        /// </summary>
        /// <param name="component">The component with the property to be examined for persistence.</param>
        /// <returns>
        /// true if the property should be persisted; otherwise, false.
        /// </returns>
        public override bool ShouldSerializeValue(object component)
        {
            throw new NotImplementedException();
        }
    }
}
